package com.gollum.common.domain.response;

import com.gollum.jpa.domain.Page;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * 前端表格需要的参数类型
 *
 * @author Herther
 * @createTime 2022年09月14日 21:55:00
 * @since 1.0.0
 */
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString
public class TableSupport<T> implements Serializable {

    private static final long serialVersionUID = -1L;

    /**
     * 当前页码
     */
    private int page;

    /**
     * 每页多少条数据
     */
    private int pageSize;

    /**
     * 查询的数据
     */
    private List<?> list;

    /**
     * 总共多少条
     */
    private long total;


    public static <T> TableSupport <T> toTableResponse(Page page,List<?> resultList){
        return new TableSupport<T>()
                .setPage(page.getStart() + 1 )
                .setPageSize(page.getLimit())
                .setTotal(page.getTotalCount())
                .setList(resultList);
    }

}
